home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 05.zip / BS1 part 5 / PDraw3.0.adf / pdraw_rex.lzh / PDrawAutoSave.rexx < prev    next >
OS/2 REXX Batch file  |  1992-06-15  |  2KB  |  131 lines

  1. /*
  2.     PDrawAutoSave.rexx
  3.     Copyright Gold Disk Inc, January, 1992
  4. */
  5. signal on break_c
  6. signal on break_d
  7. signal on break_e
  8. signal on break_f
  9. signal on error
  10. signal on halt
  11. signal on ioerr
  12.  
  13. arg backup
  14.  
  15. if ~show(p, 'PDRAWAREXX') then exit_msg()
  16.  
  17. if ~show(l, "rexxsupport.library") then
  18.     if ~addlib("rexxsupport.library",0,-30) then
  19.    call exit_msg("Please install the rexxsupport.library in your libs: directory before running this Genie")
  20.  
  21. minutes = 60 * 50
  22.  
  23. do forever
  24.  
  25.     interval = getclip(pdautosave)
  26.     if interval = '' then exit_msg()
  27.  
  28.     call delay(interval * minutes)
  29.  
  30.     if ~show(p, 'PDRAWAREXX') then exit_msg()
  31.  
  32.     do while pdm_GetState() ~= "0 0"
  33.       call delay(.2 * minutes)
  34.     end
  35.  
  36.     if ~pdm_DocChanged() then iterate
  37.  
  38.     dname   = pdm_GetDocName()
  39.     dsaved  = pdm_SavedDate()
  40.  
  41.     if dname ~= prevdname then
  42.     do
  43.         ok =  pdm_Inform(3, "Would you like to save now?", "Cancel","No", "Yes")
  44.  
  45.         if ok = 1 then iterate
  46.         else if ok = 0 then exit_msg()
  47.  
  48.         if dsaved = "Not Saved" then
  49.         do
  50.             dname = pdm_GetFileName("Save Document As..", "", "")
  51.             if dname = '' then iterate
  52.         end
  53.  
  54.         backup = Y
  55.         file = splitpath(dname)
  56.         prevdname = dname
  57.  
  58.     end
  59.     else
  60.     do
  61.         ok =  pdm_Inform(3, "Would you like to save now?", "Cancel","No", "Yes")
  62.         if ok = 1 then iterate
  63.         else if ok = 0 then exit_msg()
  64.     end
  65.     
  66.     if backup = 'Y' & exists(dname) then
  67.     do
  68.         address command
  69.         'copy'  '"'dname'"' '"'dname'.bak"'
  70.         backup = N
  71.     end
  72.  
  73.     if ~pdm_SaveDocument(dname) then
  74.     do
  75.         response =  pdm_Inform(2, "An error has occured saving document. Try again?", "No", "Yes")
  76.         if response = 0 then exit_msg()
  77.         else iterate
  78.     end
  79.  
  80.     call pdm_SetDocName(file)
  81. end
  82.  
  83.  
  84. exit_msg()
  85.  
  86. splitpath: procedure expose dname
  87. do
  88.  
  89.     spos = pos('/', dname)
  90.  
  91.     if spos = 0 then
  92.     do
  93.        vpos = pos(':', dname)
  94.        if vpos = 0 & spos = 0 then
  95.        return dname
  96.  
  97.     end
  98.  
  99.     file    = substr(dname, max(vpos, spos) + 1)
  100.  
  101.     return(file)
  102.  
  103. end
  104.  
  105. exit_msg: procedure
  106. do
  107.     parse arg message
  108.  
  109.     if message ~= '' then
  110.       call pdm_Inform(1, message, )
  111.  
  112.     call setclip(pdrawautosave, "")
  113.  
  114.     exit
  115.  
  116. end
  117.  
  118. break_c:
  119. break_d:
  120. break_e:
  121. break_f:
  122. error:
  123. say errortext(rc)
  124. halt:
  125. ioerr:
  126. do
  127.     call setclip(pdrawautosave, "")
  128.     exit
  129. end
  130.  
  131.